package com.ruoyi.dictionaries.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import lombok.Data;
import org.openoa.base.vo.BusinessDataVo;

import java.util.Date;
@Data
public class StatusChangeVo extends BusinessDataVo {
    /** UUID主键，唯一标识每条学籍异动记录 */
    private String id;

    /** 学生学号，关联学生基础信息表 */
    @Excel(name = "学生学号，关联学生基础信息表")
    private String studentId;

    /** 学生姓名，冗余存储便于快速查询 */
    @Excel(name = "学生姓名，冗余存储便于快速查询")
    private String studentName;

    /** 原学籍状态（正常/休学/保留学籍等） */
    @Excel(name = "原学籍状态", readConverterExp = "正=常/休学/保留学籍等")
    private String originalStatus;

    /** 异动类型（转学/休学/复学/退学/留级/转专业等） */
    @Excel(name = "异动类型", readConverterExp = "转=学/休学/复学/退学/留级/转专业等")
    private String changeType;

    /** 异动申请原因说明 */
    @Excel(name = "异动申请原因说明")
    private String changeReason;

    /** 申请提交日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "申请提交日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date applyDate;

    /** 申请材料清单（如：申请表/证明文件/成绩单等） */
    @Excel(name = "申请材料清单", readConverterExp = "如=：申请表/证明文件/成绩单等")
    private String applyMaterials;

    /** 材料审核状态（齐全/缺少/审核通过等） */
    @Excel(name = "材料审核状态", readConverterExp = "齐=全/缺少/审核通过等")
    private String materialsStatus;

    /** 一级审核人（如：班主任） */
    @Excel(name = "一级审核人", readConverterExp = "如=：班主任")
    private String reviewer1;

    /** 一级审核意见 */
    @Excel(name = "一级审核意见")
    private String reviewer1Opinion;

    /** 一级审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "一级审核时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date reviewer1Time;

    /** 一级审核结果（通过/驳回/待审核） */
    @Excel(name = "一级审核结果", readConverterExp = "通=过/驳回/待审核")
    private String reviewer1Result;

    /** 二级审核人（如：系主任） */
    @Excel(name = "二级审核人", readConverterExp = "如=：系主任")
    private String reviewer2;

    /** 二级审核意见 */
    @Excel(name = "二级审核意见")
    private String reviewer2Opinion;

    /** 二级审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "二级审核时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date reviewer2Time;

    /** 二级审核结果（通过/驳回/待审核） */
    @Excel(name = "二级审核结果", readConverterExp = "通=过/驳回/待审核")
    private String reviewer2Result;

    /** 三级审核人（如：教务处主任） */
    @Excel(name = "三级审核人", readConverterExp = "如=：教务处主任")
    private String reviewer3;

    /** 三级审核意见 */
    @Excel(name = "三级审核意见")
    private String reviewer3Opinion;

    /** 三级审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "三级审核时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date reviewer3Time;

    /** 最终审核结果（通过/驳回/待审核） */
    @Excel(name = "最终审核结果", readConverterExp = "通=过/驳回/待审核")
    private String reviewer3Result;

    /** 最终学籍状态（转学完成/休学生效/退学确认等） */
    @Excel(name = "最终学籍状态", readConverterExp = "转=学完成/休学生效/退学确认等")
    private String finalStatus;
    private Date createTime;
    private String createName;
    private Date updateTime;
    private String updateName;
    private String remark;
}
